package main

import (
	"fmt"
	"gorm.io/driver/sqlite" // 基于 GGO 的 Sqlite 驱动
	"gorm.io/gorm/logger"
	"log"
	"os"

	// "github.com/glebarez/sqlite" // 纯 Go 实现的 SQLite 驱动, 详情参考： https://github.com/glebarez/sqlite
	"gorm.io/gorm"
)

type TestDb struct {
	gorm.Model
	Name string `json:"name"`
	Age  string `json:"age"`
}

var DBs *gorm.DB

func main() {
	newlogger := logger.New(
		log.New(os.Stdout, "\r\n", log.LstdFlags),
		logger.Config{})
	db, err := gorm.Open(sqlite.Open("./local.db?cache=shared&mode=rwc&_journal_mode=WAL"), &gorm.Config{Logger: newlogger})
	if err != nil {
		fmt.Println("数据库连接失败")
		return
	}
	//db.AutoMigrate(
	//	TestDb{},
	//)
	//fmt.Println("数据库创建成功")
	sqlDb, _ := db.DB()
	sqlDb.SetMaxIdleConns(200) //设置最大连接数
	sqlDb.SetMaxOpenConns(200)
	DBs = db
	if err != nil {
		fmt.Println("获取db出错了", err.Error())
		return
	}
	testDb := new(TestDb)
	testDb.Name = "xxm"
	testDb.Age = "10"
	err = DBs.Debug().Create(&testDb).Error
	if err != nil {
		fmt.Println("存入数据失败", err.Error())
		return
	}
	fmt.Println("数据存入成功")

}
